கோட் ஸ்ப்ளிட்டிங் மூலம் உங்கள் ஜாவாஸ்கிரிப்ட் பயன்பாடுகளை மேம்படுத்துங்கள். உலகளவில் சிறந்த செயல்திறன் மற்றும் பயனர் அனுபவத்திற்காக மாட்யூல்களை டைனமிக்காக ஏற்றுவதைக் கற்றுக்கொள்ளுங்கள். எடுத்துக்காட்டுகள் மற்றும் சிறந்த நடைமுறைகள் அடங்கும்.
ஜாவாஸ்கிரிப்ட் மாட்யூல் கோட் ஸ்ப்ளிட்டிங்: டைனமிக் பண்டில் அமைப்பு
இன்றைய வேகமான டிஜிட்டல் உலகில், எந்தவொரு வலைப் பயன்பாட்டிற்கும் உகந்த செயல்திறனை வழங்குவது மிகவும் முக்கியமானது. பரபரப்பான டோக்கியோ முதல் ரியோ டி ஜெனிரோவின் துடிப்பான தெருக்கள் வரை - பயனர்கள், அவர்கள் எங்கிருந்தாலும், விரைவான ஏற்றுதல் நேரங்களையும் தடையற்ற பயனர் அனுபவத்தையும் எதிர்பார்க்கிறார்கள். இதை அடைவதற்கான மிகவும் பயனுள்ள நுட்பங்களில் ஒன்று ஜாவாஸ்கிரிப்ட் மாட்யூல் கோட் ஸ்ப்ளிட்டிங் ஆகும். இந்த வலைப்பதிவு இடுகை, கோட் ஸ்ப்ளிட்டிங்கின் நுணுக்கங்களை ஆராய்கிறது, அதன் நன்மைகள், செயல்படுத்தும் உத்திகள் மற்றும் உயர் செயல்திறன் கொண்ட, உலகளவில் அணுகக்கூடிய வலைப் பயன்பாடுகளை உருவாக்குவதற்கான சிறந்த நடைமுறைகளை விவரிக்கிறது.
சிக்கலைப் புரிந்துகொள்ளுதல்: ஒற்றைக்கல் பண்டில்
பாரம்பரியமாக, ஜாவாஸ்கிரிப்ட் பயன்பாடுகள் ஒரே, பெரிய கோப்பாக தொகுக்கப்பட்டன. இந்த ஒற்றைக்கல் பண்டில், பயன்பாட்டை இயக்கத் தேவையான அனைத்து கோட்களையும் கொண்டுள்ளது. வரிசைப்படுத்துவது எளிது என்றாலும், இந்த அணுகுமுறைக்கு குறிப்பிடத்தக்க குறைபாடுகள் உள்ளன, குறிப்பாக பயன்பாடுகள் சிக்கலானதாக வளரும்போது. இந்தச் சவால்களைக் கவனியுங்கள்:
- மெதுவான ஆரம்ப ஏற்றுதல் நேரம்: பயனர்கள், குறிப்பாக மெதுவான இணைய இணைப்புகளைக் கொண்டவர்கள் (பல பிராந்தியங்களில் பொதுவானது), எந்தவொரு தொடர்பும் ஏற்படுவதற்கு முன்பு முழு பண்டிலையும் உலாவி பதிவிறக்கும்போது நீண்ட காத்திருப்பு நேரங்களை எதிர்கொள்கின்றனர்.
- தேவையற்ற கோட் பதிவிறக்கம்: பயனர்கள் ஆரம்பத்தில் பயன்பாட்டின் ஒரு சிறிய பகுதியுடன் மட்டுமே தொடர்பு கொள்ளலாம். முழு கோட்பேஸையும் பதிவிறக்குவது அலைவரிசையை வீணாக்குகிறது மற்றும் ஆரம்ப ரெண்டரிங்கை மெதுவாக்குகிறது.
- திறமையற்ற வளப் பயன்பாடு: உலாவி ஒரு பெரிய ஜாவாஸ்கிரிப்ட் கோப்பை அலசவும், தொகுக்கவும், இயக்கவும் வேண்டியுள்ளது, இது டெஸ்க்டாப் மற்றும் மொபைல் சாதனங்களில் மெதுவான செயல்திறனுக்கு வழிவகுக்கிறது.
தீர்வு: கோட் ஸ்ப்ளிட்டிங் மற்றும் டைனமிக் பண்டிலிங்
கோட் ஸ்ப்ளிட்டிங் இந்த சிக்கல்களை, பயன்பாட்டின் கோடை சிறிய, நிர்வகிக்கக்கூடிய பண்டில்களாக உடைப்பதன் மூலம் தீர்க்கிறது. இந்த பண்டில்கள் தேவைக்கேற்ப ஏற்றப்படுகின்றன, அதாவது உலாவி ஒரு குறிப்பிட்ட நேரத்தில் தேவைப்படும் கோடை மட்டுமே பதிவிறக்குகிறது. இந்த டைனமிக் ஏற்றுதல் அணுகுமுறை ஆரம்ப ஏற்றுதல் நேரங்களையும் ஒட்டுமொத்த பயன்பாட்டு செயல்திறனையும் கணிசமாக மேம்படுத்துகிறது. இது வெவ்வேறு பிராந்தியங்களில் உள்ள பயனர்களுக்கு குறிப்பாகப் பயனுள்ளதாக இருக்கும், ஏனெனில் வேகமான ஏற்றுதல், அவர்களின் இருப்பிடம் அல்லது சாதனத்தைப் பொருட்படுத்தாமல், மிகவும் நேர்மறையான அனுபவத்திற்கு நேரடியாகப் பங்களிக்கிறது.
கோட் ஸ்ப்ளிட்டிங்கின் முக்கிய நன்மைகள்:
- குறைக்கப்பட்ட ஆரம்ப ஏற்றுதல் நேரம்: சிறிய ஆரம்ப பண்டில் அளவுகள் வேகமான ஏற்றுதலுக்கு வழிவகுக்கின்றன.
- மேம்பட்ட உணர்திறன் செயல்திறன்: பயன்பாடு விரைவாக ஏற்றப்படுவதால் பயனர்கள் மிகவும் பதிலளிக்கக்கூடிய பயன்பாட்டை அனுபவிக்கிறார்கள்.
- உகந்த வளப் பயன்பாடு: தேவையான கோட் மட்டுமே பதிவிறக்கம் செய்யப்பட்டு செயலாக்கப்படுகிறது, இது அலைவரிசை மற்றும் சாதன வளங்களின் திறமையான பயன்பாட்டிற்கு வழிவகுக்கிறது.
- சிறந்த கேச்சிங்: பயன்பாட்டின் ஒரு பகுதியில் ஏற்படும் மாற்றங்களுக்கு முழு கோட்பேஸையும் மீண்டும் பதிவிறக்க வேண்டிய அவசியமில்லை.
- மேம்பட்ட எஸ்சிஓ (SEO): வேகமான ஏற்றுதல் நேரங்கள் தேடுபொறி தரவரிசைகளில் சாதகமான தாக்கத்தை ஏற்படுத்தும்.
கோட் ஸ்ப்ளிட்டிங்கை செயல்படுத்துதல்: கருவிகள் மற்றும் நுட்பங்கள்
ஜாவாஸ்கிரிப்ட் பயன்பாடுகளில் கோட் ஸ்ப்ளிட்டிங்கை செயல்படுத்த பல கருவிகள் மற்றும் நுட்பங்கள் உள்ளன. மிகவும் பிரபலமானவை பின்வருமாறு:
1. மாட்யூல் பண்ட்லர்கள்:
மாட்யூல் பண்ட்லர்கள் கோட் ஸ்ப்ளிட்டிங் செயல்முறையை தானியக்கமாக்கும் அத்தியாவசிய கருவிகளாகும். பிரபலமான பண்ட்லர்கள் பின்வருமாறு:
- வெப்பேக் (Webpack): பண்டிலிங் செயல்முறையின் மீது விரிவான கட்டுப்பாட்டை வழங்கும், உயர்வாக உள்ளமைக்கக்கூடிய மாட்யூல் பண்ட்லர். இது தொழில்துறையில் பரவலாகப் பயன்படுத்தப்படும் ஒரு பண்ட்லர் ஆகும்.
- பார்சல் (Parcel): எளிமையான அமைவு அனுபவத்தை வழங்கும் ஒரு பூஜ்ஜிய-உள்ளமைவு பண்ட்லர்.
- ரோல்அப் (Rollup): குறிப்பாக லைப்ரரிகளுக்கு, சிறிய, திறமையான பண்டில்களை உருவாக்குவதில் சிறந்து விளங்கும் ஒரு பண்ட்லர்.
2. டைனமிக் இம்போர்ட்ஸ்:
டைனமிக் இம்போர்ட்ஸ் (`import()` செயல்பாட்டைப் பயன்படுத்துதல்) கோட் ஸ்ப்ளிட்டிங்கின் மூலக்கல்லாகும். அவை மாட்யூல்களை ஒத்திசைவற்ற முறையில், தேவைக்கேற்ப ஏற்றுவதற்கு உங்களை அனுமதிக்கின்றன. கோட் ஸ்ப்ளிட்டிங்கை செயல்படுத்துவதற்கான மிக நேரடியான முறை இதுவாகும்.
எடுத்துக்காட்டு:
async function myFunction() {
const { moduleFunction } = await import('./myModule.js');
moduleFunction();
}
இந்த எடுத்துக்காட்டில், `myFunction()` அழைக்கப்படும்போது மட்டுமே `myModule.js` ஏற்றப்படுகிறது. பண்ட்லர் தானாகவே `myModule.js` க்கு ஒரு தனி பண்டிலை உருவாக்குகிறது.
3. React.lazy மற்றும் Suspense உடன் கோட் ஸ்ப்ளிட்டிங் (ரியாக்ட்-குறிப்பிட்டது):
ரியாக்ட், `React.lazy` மற்றும் `
எடுத்துக்காட்டு:
import React, { Suspense, lazy } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function MyComponentWrapper() {
return (
<Suspense fallback={<div>Loading...</div>}>
<MyComponent />
</Suspense>
);
}
இங்கே, `MyComponent` சோம்பேறித்தனமாக ஏற்றப்படுகிறது (lazy-loaded). `
4. ரூட்-அடிப்படையிலான கோட் ஸ்ப்ளிட்டிங்
பயன்பாட்டு ரூட்களின் அடிப்படையில் கோடைப் பிரிப்பது ஒரு பொதுவான மற்றும் பயனுள்ள உத்தியாகும். ஒவ்வொரு ரூட்டும் ஒரு தனி பண்டிலுடன் இணைக்கப்படலாம். ஒரு பயனர் ஒரு குறிப்பிட்ட ரூட்டிற்கு செல்லும்போது, அதனுடன் தொடர்புடைய பண்டில் ஏற்றப்படுகிறது. இது ஒரு குறிப்பிட்ட பகுதிக்கான தேவையான கோட், பயனர் அந்த ரூட்டை அணுகும்போது ஏற்றப்படுவதை உறுதி செய்வதன் மூலம் பயனர் அனுபவத்தை மேம்படுத்துகிறது.
எடுத்துக்காட்டு (ரியாக்ட் ரூட்டருடன்):
import React, { lazy, Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const Home = lazy(() => import('./Home'));
const About = lazy(() => import('./About'));
function App() {
return (
<Router>
<Suspense fallback={<div>Loading...</div>}>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</Switch>
</Suspense>
</Router>
);
}
பயனுள்ள கோட் ஸ்ப்ளிட்டிங்கிற்கான சிறந்த நடைமுறைகள்
கோட் ஸ்ப்ளிட்டிங்கை திறம்பட செயல்படுத்த கவனமான திட்டமிடல் மற்றும் பரிசீலனை தேவை. இந்த சிறந்த நடைமுறைகளைப் பின்பற்றுவது அதன் நன்மைகளை அதிகரிக்க உதவும்:
1. தர்க்கரீதியான துண்டுகளை அடையாளம் காணுதல்:
உங்கள் பயன்பாட்டை கவனமாக பகுப்பாய்வு செய்து, தனித்தனி பண்டில்களாகப் பிரிக்கக்கூடிய கோடின் தர்க்கரீதியான குழுக்களை அடையாளம் காணுங்கள். இந்த குழுக்கள் ரூட்கள், அம்சங்கள் அல்லது பிற தர்க்கரீதியான பிரிவுகளின் அடிப்படையில் இருக்கலாம். பயனர்களின் பயன்பாட்டு முறைகளைக் கவனியுங்கள், ஏனெனில் வெவ்வேறு பிராந்தியங்களில் வெவ்வேறு பொதுவாகப் பயன்படுத்தப்படும் அம்சங்கள் இருக்கலாம். உதாரணமாக, ஒரு சமூக ஊடகத் தளம், உள்ளூர் நிகழ்வுகள் தொடர்பான அம்சங்கள் ஒரு குறிப்பிட்ட பிராந்தியத்தில் உள்ள பயனர்களால் அடிக்கடி அணுகப்படுவதைக் காணலாம்.
2. டைனமிக் இம்போர்ட்களை புத்திசாலித்தனமாகப் பயன்படுத்துதல்:
டைனமிக் இம்போர்ட்களை தந்திரோபாயமாகப் பயன்படுத்துங்கள். அவை குறிப்பிடத்தக்க நன்மைகளை வழங்கினாலும், அதிகப்படியான பயன்பாடு தேவையற்ற நெட்வொர்க் கோரிக்கைகளுக்கு வழிவகுக்கும். ஒவ்வொரு டைனமிக் இம்போர்ட்டின் செலவு-பயன் விகிதத்தையும் கவனமாகக் கருதுங்கள். டைனமிக்காக ஏற்றப்படும் பல துண்டுகள் அதிகரித்த நெட்வொர்க் மேல்நிலைக்கு வழிவகுக்கும் என்பதை நினைவில் கொள்ளுங்கள்.
3. பண்டில் அளவை மேம்படுத்துதல்:
ஒவ்வொரு பண்டிலின் அளவையும் குறைக்கவும். உங்கள் ஜாவாஸ்கிரிப்ட் கோப்புகளின் அளவைக் குறைக்க மினிஃபையர்கள் (எ.கா., Terser) போன்ற கருவிகளைப் பயன்படுத்தவும். உங்கள் சார்புகளை தவறாமல் மதிப்பாய்வு செய்து, பயன்படுத்தப்படாத கோடை அகற்றவும். மெதுவான இணைய இணைப்புகளைக் கொண்ட பிராந்தியங்களில் உள்ள பயனர்களுக்கு செயல்திறன் ஆதாயங்கள் குறிப்பாக கவனிக்கத்தக்கவை, அங்கு பண்டில் அளவில் ஒரு சிறிய குறைப்பு கூட வேகமான ஏற்றுதல் நேரத்திற்கு வழிவகுக்கும்.
4. பிழை கையாளுதலைச் செயல்படுத்துதல்:
டைனமிக் இம்போர்ட்களைப் பயன்படுத்தும்போது, சாத்தியமான பிழைகளை (எ.கா., நெட்வொர்க் தோல்விகள்) நேர்த்தியாகக் கையாளவும். சிக்கல்கள் ஏற்பட்டாலும், ஒரு மென்மையான பயனர் அனுபவத்தை உறுதிசெய்ய, தகவல் தரும் பிழைச் செய்திகள் மற்றும் பின்னடைவு வழிமுறைகளை வழங்கவும். குறைந்த நிலையான இணையம் உள்ள ஒரு பிராந்தியத்தில் உள்ள பயனர் நெட்வொர்க் சிக்கல்களை அடிக்கடி சந்திக்கக்கூடும் என்பதைக் கருத்தில் கொள்வது அவசியம்.
5. ப்ரீலோடிங் மற்றும் ப்ரீ-ஃபெட்சிங்கைக் கருத்தில் கொள்ளுங்கள்:
முக்கியமான வளங்களுக்கு, செயல்திறனை மேம்படுத்த ப்ரீலோடிங் மற்றும் ப்ரீ-ஃபெட்சிங் நுட்பங்களைப் பயன்படுத்தவும். ப்ரீலோடிங் ஒரு வளத்தை விரைவில் ஏற்றுமாறு உலாவிக்குச் சொல்கிறது, அதேசமயம் ப்ரீ-ஃபெட்சிங் எதிர்கால பயன்பாட்டை எதிர்பார்த்து பின்னணியில் ஏற்றுவதற்குச் சுட்டிக்காட்டுகிறது. உதாரணமாக, ஒரு பயனர் அடுத்ததாகச் செல்ல வாய்ப்புள்ள ஒரு பண்டிலை நீங்கள் ப்ரீ-ஃபெட்ச் செய்யலாம்.
6. கண்காணிப்பு மற்றும் செயல்திறன் சோதனை:
கோட் ஸ்ப்ளிட்டிங்கை செயல்படுத்திய பிறகு உங்கள் பயன்பாட்டின் செயல்திறனைத் தொடர்ந்து கண்காணிக்கவும். ஏதேனும் இடையூறுகளைக் கண்டறிந்து உங்கள் உள்ளமைவை மேம்படுத்த செயல்திறன் சோதனை கருவிகளைப் பயன்படுத்தவும். உலகெங்கிலும் உள்ள பயனர்களுக்கு உங்கள் பயன்பாடு சிறப்பாகச் செயல்படுவதை உறுதிசெய்ய, மெதுவான நெட்வொர்க் வேகங்களை உருவகப்படுத்துவது உட்பட, பல்வேறு சாதனங்கள் மற்றும் நெட்வொர்க் நிலைமைகளில் சோதனை செய்வது முக்கியம். WebPageTest மற்றும் Lighthouse போன்ற கருவிகள் இந்த நோக்கங்களுக்கு உதவியாக இருக்கும்.
7. கேச்சிங் உத்திகள்:
பயனுள்ள கேச்சிங் உத்திகளைச் செயல்படுத்தவும். உலாவிகள் பண்டில்களை கேச் செய்யவும் மற்றும் அடுத்தடுத்த வருகைகளில் அவற்றை மீண்டும் பதிவிறக்குவதற்கான தேவையைக் குறைக்கவும், பொருத்தமான கேச்சிங் தலைப்புகளை (எ.கா., `Cache-Control`) அமைக்க உங்கள் சேவையகத்தை உள்ளமைக்கவும். உங்கள் பண்டில்களை புவியியல் ரீதியாக வேறுபட்ட சேவையகங்களில் விநியோகிக்க ஒரு உள்ளடக்க விநியோக வலையமைப்பை (CDN) பயன்படுத்துவதைக் கருத்தில் கொள்ளுங்கள். இந்த உத்தி வெவ்வேறு பிராந்தியங்களில் உள்ள பயனர்களுக்கான பதிவிறக்க வேகத்தை மேம்படுத்துகிறது.
நிஜ-உலக எடுத்துக்காட்டுகள் மற்றும் உலகளாவிய தாக்கம்
கோட் ஸ்ப்ளிட்டிங் நிஜ-உலக பயன்பாடுகளில் குறிப்பிடத்தக்க தாக்கத்தை ஏற்படுத்துகிறது. இந்த எடுத்துக்காட்டுகளைக் கருத்தில் கொள்ளுங்கள்:
- மின்-வணிக வலைத்தளங்கள்: ஆன்லைன் சில்லறை விற்பனையாளர்கள் ஒரு பயனர் ஒரு தயாரிப்புப் பக்கத்தைப் பார்க்கும்போது மட்டுமே தயாரிப்பு-குறிப்பிட்ட கோடை ஏற்றுவதற்கு கோட் ஸ்ப்ளிட்டிங்கைப் பயன்படுத்தலாம். இது வேகமான உலாவலுக்கு வழிவகுக்கிறது, குறிப்பாக மொபைல் சாதனங்களில் உலாவும் பயனர்களுக்கு. மொபைல் வர்த்தகம் வேகமாக வளர்ந்து வரும் இந்தியா மற்றும் பிரேசில் போன்ற சந்தைகளுக்கு இது முக்கியமானது.
- சமூக ஊடகத் தளங்கள்: சமூக ஊடகத் தளங்கள் படக் காட்சியகங்கள் அல்லது வீடியோ பிளேயர்கள் போன்ற அம்சங்களை தேவைக்கேற்ப ஏற்றலாம். இது ஆரம்ப ஏற்றுதல் நேரத்தையும் ஒட்டுமொத்த பயனர் அனுபவத்தையும் மேம்படுத்துகிறது. மாறுபட்ட இணைய வேகம் உள்ள பிராந்தியங்களில் வேகமான ஏற்றுதல் குறிப்பாக முக்கியமானது.
- செய்தி வலைத்தளங்கள்: செய்தி வலைத்தளங்கள் கட்டுரை வகைகள் அல்லது பிரிவுகளின் அடிப்படையில் கோடைப் பிரிக்கலாம். இது குறிப்பிட்ட செய்திக் கட்டுரைகளை அணுகும் பயனர்களுக்கான ஏற்றுதல் நேரங்களை மேம்படுத்துகிறது.
இந்த நன்மைகள் வளர்ந்த நாடுகளுக்கு மட்டும் அல்ல. வேகமான ஏற்றுதல் நேரங்கள் மற்றும் மேம்பட்ட பயனர் அனுபவம் வளர்ந்து வரும் சந்தைகளில் முக்கியமானவை, அங்கு இணைய வேகம் மெதுவாக இருக்கலாம். உதாரணமாக, நைஜீரியாவின் லாகோஸில் உள்ள ஒரு பயனர், கோட்-ஸ்ப்ளிட் பயன்பாட்டிலிருந்து குறிப்பிடத்தக்க நன்மைகளை அனுபவிப்பார், ஏனெனில் அது ஒரு ஒற்றைக்கல் பயன்பாட்டை விட விரைவாக ஏற்றப்பட்டு பதிலளிக்கும்.
முடிவு: வேகமான, உலகளாவிய வலையை உருவாக்குதல்
ஜாவாஸ்கிரிப்ட் மாட்யூல் கோட் ஸ்ப்ளிட்டிங் உயர்-செயல்திறன் வலைப் பயன்பாடுகளை உருவாக்குவதற்கான ஒரு முக்கிய நுட்பமாகும். உங்கள் கோடை சிறிய, தேவைக்கேற்ப பண்டில்களாக உடைப்பதன் மூலம், நீங்கள் ஆரம்ப ஏற்றுதல் நேரங்களை கணிசமாக மேம்படுத்தலாம், அலைவரிசை நுகர்வைக் குறைக்கலாம் மற்றும் உங்கள் உலகளாவிய பார்வையாளர்களுக்கான ஒட்டுமொத்த பயனர் அனுபவத்தை மேம்படுத்தலாம். நீங்கள் சான் பிரான்சிஸ்கோவில் ஒரு டெவலப்பராக இருந்தாலும், பெர்லினில் ஒரு வடிவமைப்பாளராக இருந்தாலும், அல்லது சிங்கப்பூரில் ஒரு தொழில்முனைவோராக இருந்தாலும், இன்றைய பயனர்களின் தேவைகளைப் பூர்த்தி செய்யும் நவீன, செயல்திறன் மிக்க வலைப் பயன்பாடுகளை உருவாக்க கோட் ஸ்ப்ளிட்டிங்கைப் புரிந்துகொண்டு செயல்படுத்துவது அவசியம்.
இந்த இடுகையில் கோடிட்டுக் காட்டப்பட்டுள்ள சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், நீங்கள் வேகமானவை மட்டுமல்ல, அளவிடக்கூடிய மற்றும் பராமரிக்கக்கூடிய வலைப் பயன்பாடுகளை உருவாக்க முடியும். வலை தொடர்ந்து বিকশিতடைந்து உலகமயமாக்கப்படுவதால், பயனரின் இருப்பிடம் அல்லது சாதனத்தைப் பொருட்படுத்தாமல், ஒரு சிறந்த பயனர் அனுபவத்தை வழங்கும் பயன்பாடுகளை உருவாக்குவதில் கோட் ஸ்ப்ளிட்டிங் இன்னும் முக்கியமானதாக மாறும். கோட் ஸ்ப்ளிட்டிங்கைத் தழுவுங்கள், உங்கள் பண்டில்களை மேம்படுத்துங்கள், மற்றும் உலகெங்கிலும் உள்ள பயனர்களுக்கு விதிவிலக்கான வலை அனுபவங்களை வழங்குங்கள். இது உங்கள் பயன்பாடுகள் வேகமாகவும், திறமையாகவும், பயனர்களுக்கு எளிதில் அணுகக்கூடியதாகவும் இருப்பதை உறுதிசெய்கிறது, உலகளாவிய டிஜிட்டல் நிலப்பரப்பில் ஒரு வலுவான இருப்பை வளர்க்கிறது.